home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet internetowy / Rozne / HTTrack 3.40-2 / httrack-3.40-2.exe / {app} / src_win / WinHTTrack / DialogContainer.cpp < prev    next >
C/C++ Source or Header  |  2001-09-02  |  4KB  |  147 lines

  1. // DialogContainer.cpp : implementation file
  2. //
  3.  
  4. // Les dialogues doivent avoir comme flags:
  5. // CHILD, NONE, VISIBLE
  6. // Et surcharger Oncancel et OnOK
  7.  
  8.  
  9. #include "stdafx.h"
  10. #include "winhttrack.h"
  11. #include "DialogContainer.h"
  12.  
  13. #ifdef _DEBUG
  14. #define new DEBUG_NEW
  15. #undef THIS_FILE
  16. static char THIS_FILE[] = __FILE__;
  17. #endif
  18.  
  19. /////////////////////////////////////////////////////////////////////////////
  20. // CDialogContainer
  21.  
  22. IMPLEMENT_DYNCREATE(CDialogContainer, CFormView)
  23.  
  24. CDialogContainer::CDialogContainer()
  25.     : CFormView(CDialogContainer::IDD)
  26. {
  27.   scrollsize_declared=FALSE;
  28.   tab=new CWizTab("WinHTTrack Website Copier",0);
  29.   tab2=new CWizTab("WinHTTrack Website Copier",1);
  30.     //{{AFX_DATA_INIT(CDialogContainer)
  31.         // NOTE: the ClassWizard will add member initialization here
  32.     //}}AFX_DATA_INIT
  33. }
  34.  
  35. CDialogContainer::~CDialogContainer()
  36. {
  37.   /*
  38.   voir WizTab.cpp
  39.   delete tab;
  40.   delete tab2;
  41.   tab=tab2=NULL;
  42.   */
  43. }
  44.  
  45. void CDialogContainer::DoDataExchange(CDataExchange* pDX)
  46. {
  47.     CFormView::DoDataExchange(pDX);
  48.     //{{AFX_DATA_MAP(CDialogContainer)
  49.         // NOTE: the ClassWizard will add DDX and DDV calls here
  50.     //}}AFX_DATA_MAP
  51. }
  52.  
  53.  
  54. BEGIN_MESSAGE_MAP(CDialogContainer, CFormView)
  55.     //{{AFX_MSG_MAP(CDialogContainer)
  56.     ON_WM_SIZE()
  57.     //}}AFX_MSG_MAP
  58. END_MESSAGE_MAP()
  59.  
  60. /////////////////////////////////////////////////////////////////////////////
  61. // CDialogContainer diagnostics
  62.  
  63. #ifdef _DEBUG
  64. void CDialogContainer::AssertValid() const
  65. {
  66.     CFormView::AssertValid();
  67. }
  68.  
  69. void CDialogContainer::Dump(CDumpContext& dc) const
  70. {
  71.     CFormView::Dump(dc);
  72. }
  73. #endif //_DEBUG
  74.  
  75. /////////////////////////////////////////////////////////////////////////////
  76. // CDialogContainer message handlers
  77.  
  78. BOOL CDialogContainer::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
  79. {
  80.     int r=CFormView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  81.   tab->CPropertySheet::Create(this,WS_CHILD|WS_VISIBLE,0);
  82.   tab2->CPropertySheet::Create(this,WS_CHILD|WS_VISIBLE,0);
  83.   return r;
  84. }
  85.  
  86. void CDialogContainer::OnInitialUpdate() 
  87. {
  88.     CFormView::OnInitialUpdate();
  89.  
  90.   tab2->ModifyStyle(WS_VISIBLE,0,0);
  91.   tab2->ModifyStyle(0,WS_DISABLED,0);
  92.   tab->RedrawWindow();
  93.   tab->SetFocus();
  94.  
  95.   {
  96.     RECT rect;
  97.     ::GetWindowRect(tab->m_hWnd,&rect);
  98.     // screen coord -> client coord
  99.     POINT a,b;
  100.     a.x=rect.left; a.y=rect.top; b.x=rect.right; b.y=rect.bottom;
  101.     ::ScreenToClient(tab->m_hWnd,&a); ::ScreenToClient(tab->m_hWnd,&b);
  102.     rect.left=a.x; rect.top=a.y; rect.right=b.x; rect.bottom=b.y;
  103.     view_w = rect.right-rect.left;
  104.     view_h = rect.bottom-rect.top;
  105.   }
  106.   {
  107.     RECT rect;
  108.     ::GetWindowRect(tab2->m_hWnd,&rect);
  109.     // screen coord -> client coord
  110.     POINT a,b;
  111.     a.x=rect.left; a.y=rect.top; b.x=rect.right; b.y=rect.bottom;
  112.     ::ScreenToClient(tab2->m_hWnd,&a); ::ScreenToClient(tab2->m_hWnd,&b);
  113.     rect.left=a.x; rect.top=a.y; rect.right=b.x; rect.bottom=b.y;
  114.     view_w = max(view_w , rect.right-rect.left);
  115.     view_h = max(view_h , rect.bottom-rect.top);
  116.   }
  117.  
  118.     CSize sizeTotal;
  119.   sizeTotal.cx = view_w;
  120.   sizeTotal.cy = view_h;
  121.   SetScrollSizes(MM_TEXT, sizeTotal);
  122.   scrollsize_declared=TRUE;
  123.   //
  124.   CRect curRect;
  125.   GetClientRect(curRect);
  126.   //tab->MoveWindow(curRect);    
  127. }
  128.  
  129. void CDialogContainer::OnSize(UINT nType, int cx, int cy) 
  130. {
  131.     CFormView::OnSize(nType, cx, cy);
  132.     
  133.   if (scrollsize_declared) {
  134.     if (tab->m_hWnd) {
  135.       // now capture current size and resize child
  136.       CRect curRect;
  137.       GetClientRect(curRect);
  138.       //curRect.left=curRect.top=0;
  139.       //curRect.right=max(curRect.right,view_w);
  140.       //curRect.bottom=max(curRect.bottom,view_h);
  141.       //tab->MoveWindow(curRect);    
  142.     }
  143.   }
  144.     
  145. }
  146.  
  147.